package datetime

import "time"

// SortableTimeArray 可排序的时间数组类型，实现了sort.Interface接口。
//
// 使用示例:
//
//	times := SortableTimeArray{time1, time2, time3}
//	sort.Sort(times) // 按时间升序排序
type SortableTimeArray []time.Time

// Len 返回时间数组的长度，实现sort.Interface接口。
//
// 返回值:
//   - int: 数组元素数量
func (s SortableTimeArray) Len() int { return len(s) }

// Swap 交换时间数组中的两个元素，实现sort.Interface接口。
//
// 参数:
//   - i: 第一个元素的索引
//   - j: 第二个元素的索引
func (s SortableTimeArray) Swap(i, j int) { s[i], s[j] = s[j], s[i] }

// Less 比较两个时间元素的顺序，实现sort.Interface接口。
// 基于Unix时间戳进行比较，确保跨时区的一致性。
//
// 参数:
//   - i: 第一个元素的索引
//   - j: 第二个元素的索引
//
// 返回值:
//   - bool: 如果第i个元素的时间早于第j个元素返回true
func (s SortableTimeArray) Less(i, j int) bool { return s[i].Unix() < s[j].Unix() }
